/**
 * 飞控大作业
 *
 * File:
 * Brief:
 * Author:      Duan Yuhao
 * Modified:	2022/5/25
 *
 */

#ifndef CONTROL_UTIL_H
#define CONTROL_UTIL_H
#ifdef __cplusplus
extern "C" {
#endif

#include "stm32f4xx_hal.h"
#include "imu_periph.h"
#include "remote_periph.h"
#include "math.h"
#include "stdlib.h"


typedef struct
{
	//假设遥感值设定为占空比0-100，50为中间
	//这些值需要捕获定时器上升下降沿
	uint16_t 		channel_left_lr;  //0~100    yaw偏航角    	定左右旋转
	uint16_t 		channel_left_fb;  //0~100    pitch俯仰角	 	定前后平移
	uint16_t 		channel_right_lr; //0~100    roll翻滚角   	定左右平移
	uint16_t 		channel_right_fb; //0~100	 定上下高度

	//输出
	/*无人机桨的电机ID
	 *
	 * 1	 2
	 * o     o
	 *  \   /
	 *   \ /
	 *    o
	 *   / \
	 *  /   \
	 * o     o
	 * 4     3
	 *
	 * */
	uint16_t		PWM_duty_cycle[4]; //四个无刷电机的转速 1000-2000代表0~最大值

} ctrl_data_typedef;

extern  ctrl_data_typedef ctrl_data;


#ifdef __cplusplus
}
#endif


#endif
